The proliferation of networks has led to challenges for those attempting to design devices that utilize multiple network protocols. For example, WiFi, ZigBee, Thread and Bluetooth Low Energy are all prevalent network protocols. In many situations, more than one type of network protocol is supported by a device. As an example, a mobile phone may have a WiFi interface, a Bluetooth interface, and a cellular interface. Further, most computing devices, including tablets and laptops support at least two different network protocols.
Because of the need to support multiple network protocols with a single device, there is a desire to use a single radio to operate all of these wireless protocols. This minimizes cost, real estate and power.
However, each wireless protocol has its own unique timing requirements. Certain protocols allow a device to fail to respond for long periods of time. For example, ZigBee® utilizes the concept of a sleepy end device, where a device may be in a low power state for several minutes. During this time, it does not respond to any attempts to access it. On the other hand, other protocols have a connection timeout period, wherein if the device does not receive a packet from the sender within that connection timeout period, the connection fails.
Because of these differences in protocol, creating a scheduler that can handle multiple wireless protocols is challenging. It would be beneficial if there were a scheduler that could receive transmit and receive requests from different network protocol stacks, and schedule these requests in an optimal manner.